草庐IT

php - 匿名类构造

全部标签

c# - 无参数构造函数

在C#中,有没有办法强制类必须具有无参数构造函数? 最佳答案 如果您在谈论通用约束,是的:classSomeContainerwhereT:new(){...}如果你在谈论继承。不可能要求每个实现你的接口(interface)或继承你的基类的类都有一个无参数的构造函数。你能做的最好的事情就是在你的基础构造函数中使用反射来抛出一个异常(在运行时),就像这样:abstractclassMyBase{protectedMyBase(){if(GetType().GetConstructor(Type.EmptyTypes)==null)t

c# - 用 PHP 重写 Rijndael 256 C# 加密代码

我有一个用C#编写的加密/解密算法-我需要能够在PHP中生成相同的加密,以便我可以通过HTTP发送加密文本,以便在C#端解密。这是用于加密的C#代码。this.m_plainText=string.Empty;this.m_passPhrase="passpharse";this.m_saltValue="saltvalue";this.m_hashAlgorithm="SHA1";this.m_passwordIterations=2;this.m_initVector="1a2b3c4d5e6f7g8h";this.m_keySize=256;publicstringEncrypt

c# - C# 如何知道何时运行静态构造函数?

我不相信生成的代码会在每次访问静态成员(包括函数)时检查类是否已初始化。我相信检查每次访问都是低效的。我查看了ECMA334中的§17.11,它说Theexecutionofastaticconstructoristriggeredbythefirstofthefollowingeventstooccurwithinanapplicationdomain:Aninstanceoftheclassiscreated.Anyofthestaticmembersoftheclassarereferenced.看起来没有定义如何确定“第一次”发生的时间。我想不出任何办法,只能每次检查。如何实现

c# - 获取匿名类型的读/写属性

我需要获取可以写入的匿名类型的所有属性。例如:varperson=new{Name="Person'sName",Age=25};TypeanonymousType=person.GetType();varproperties=anonymousType.GetProperties(BindingFlags.Public|BindingFlags.Instance);问题是所有属性都有它们的CanWrite属性false。对于非匿名类型,这将作为true返回。我还尝试调用PropertyInfo.GetSetMethod()返回null。如何检查该属性是否可以写入?编辑:也许知道一个类

c# - 有没有一种方法可以在不使用构造函数的情况下初始化结构的成员?

我有一个包含两个列表的结构:structMonthData{publicListFrontline;publicListLeadership;}但是,我想在创建结构时初始化两者。如果我尝试:structMonthData{publicListFrontline=newList();publicListLeadership=newList();}然后我得到:Error23'MonthData.Frontline':cannothaveinstancefieldinitializersinstructs...由于结构不能有无参数的构造函数,我也不能只在构造函数中设置它。到目前为止,我只能看

c# - 构造函数应该解析输入吗?

通常,我发现我必须实例化一堆对象,但我发现将此实例化的参数作为人类可读的文本文件提供更容易,我手动编写并将其作为输入输入到程序中。例如,如果对象是Car,那么文件可能是一堆行,每行包含名称、速度和颜色(三个必需的构造函数参数),用制表符分隔:Mycar65RedArthur'scar132PinkOldjunkcar23Rustbrown这对我来说很容易进行目视检查、修改或由另一个程序生成。然后程序可以加载文件,获取每一行,解析出相关参数,将它们提供给Car(stringname,intspeed,uintcolor)构造函数并创建对象。请注意在与构造函数兼容之前必须对输入做一些工作:

c# - 使用调用构造函数的静态方法是否有任何好处(语义或其他)?

我刚刚更新了VisualStudio2013,我注意到在MVC应用程序的项目模板中,ApplicationDbContext类现在有一个只调用构造函数的静态方法:publicstaticApplicationDbContextCreate(){returnnewApplicationDbContext();}这对我来说似乎很困惑,但我想有一些语义原因我现在应该开始使用ApplicationDbContext.Create()而不是newApplicationDbContext()。这样做有什么好处吗? 最佳答案 其实。是的。在您的特

c# - 匿名委托(delegate)中捕获的私有(private)字段

classA{publiceventEventHandlerAEvent;}classB{privateA_foo;privateint_bar;publicvoidAttachToAEvent(){_foo.AEvent+=delegate(){...UseBar(_bar);...}}}由于delegate捕获变量this._bar,它是否隐含地持有B的实例?B的实例是否会通过事件处理程序引用并由A的实例捕获变量?如果_bar是AttachToAEvent方法的局部变量,会有不同吗?因为在我的例子中,A的实例比B的实例生命周期长得多并且小得多,我担心会导致“内存泄漏”这样做。

c# - 如何读取匿名类型的属性?

我有一个返回值的方法returnnewSystem.Web.Mvc.JsonResult(){Data=new{Status="OK",}}我需要编写一个单元测试来验证jsonResult.Data.status="OK"。如何读取状态属性?更新:我尝试了[assembly:InternalsVisibleTo("TestingAssemblyName")],但这没有帮助。我不断收到错误消息{"'System.Web.Mvc.JsonResult'不包含'Status'的定义"}此外,我认为我宁愿不修改我正在测试的代码。所以我采纳了Jon的建议并使用了反射。vartype=jsonRe

c# - 为什么 String 类没有无参数构造函数?

int和object有一个无参数的构造函数。为什么不是string? 最佳答案 因为这样做没有意义。string是不可变的。创建一个空的string是没有用的。MSDN:Stringsareimmutable--thecontentsofastringobjectcannotbechangedaftertheobjectiscreated,althoughthesyntaxmakesitappearasifyoucandothis.正如JonathanLonowski所指出的,我们有string.Empty。